package com.deco.service.sys;

import com.deco.domain.vo.constants.CmsConstant;
import com.deco.service.CommonService;
import com.free.common.vo.PageResponseVo;
import com.free.common.vo.PageSearchVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

import com.deco.domain.vo.fix.FixTypeVo;
import com.deco.domain.vo.product.AccodeQueryLogVo;
import com.deco.domain.vo.product.CatagoryLogVo;
import com.deco.domain.vo.product.DicVehicleVo;
import com.deco.domain.vo.product.PartGroupVo;
import com.deco.domain.vo.product.PartsInfoImageVo;
import com.deco.domain.vo.product.PartsInfoItemVo;
import com.deco.domain.vo.product.PartsInfoVo;
import com.deco.domain.vo.product.SecurityLabelVo;
import com.deco.domain.vo.product.SecuritySystemVo;
import com.deco.domain.vo.store.StoreJoinVo;
import com.deco.domain.vo.store.StoreShopVo;
import com.deco.domain.vo.sys.CmsRoleVo;
import com.deco.logic.fix.FixTypeLogic;
import com.deco.logic.product.AccodeQueryLogLogic;
import com.deco.logic.product.CatagoryLogLogic;
import com.deco.logic.product.DicVehicleLogic;
import com.deco.logic.product.PartGroupLogic;
import com.deco.logic.product.PartsInfoImageLogic;
import com.deco.logic.product.PartsInfoItemLogic;
import com.deco.logic.product.PartsInfoLogic;
import com.deco.logic.product.SecurityLabelLogic;
import com.deco.logic.product.SecuritySystemLogic;
import com.deco.logic.store.StoreJoinLogic;
import com.deco.logic.store.StoreShopLogic;
import com.deco.logic.sys.CmsRoleLogic;
import com.free.common.vo.ResultModel;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Service
public class CmsRoleService extends CommonService {
	   /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/
    
    @Autowired
    private CmsRoleLogic cmsRoleLogic;


    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/


    public List<CmsRoleVo> getAll(){
    	return cmsRoleLogic.getAll();
	}

    public CmsRoleVo getCmsRole(int id){
    	return cmsRoleLogic.getCmsRole(id);
    }


    public List<CmsRoleVo> getActivedRoles(String roles){
    	return cmsRoleLogic.getActivedRoles(roles);
	}

    public ResultModel save(CmsRoleVo cmsRoleVo){
    	if(cmsRoleVo.getId() == 0L){
    		cmsRoleVo.setCreateBy(getCurrentUserId());
    		cmsRoleVo.setCreateTime(getCurrentTimeStamp());
			cmsRoleVo.setType(CmsConstant.ROLE_TYPE_GENERAL);
    		cmsRoleLogic.create(cmsRoleVo);
    	}
    	else{
			cmsRoleVo.setUpdateBy(getCurrentUserId());
			cmsRoleVo.setUpdateTime(getCurrentTimeStamp());
    		cmsRoleLogic.update(cmsRoleVo);
    	}
    	return ResultModel.success();
    }

	public ResultModel delete(int id) {
		cmsRoleLogic.delete(id);
	  	return ResultModel.success();
	}

	public List<CmsRoleVo> getCmsRoleInfo(String roles){
    	return cmsRoleLogic.getRoleInfos(roles);
	}

	public PageResponseVo<CmsRoleVo> selectPageInfoByCmsRole(PageSearchVo<CmsRoleVo> condition){
    	return cmsRoleLogic.selectPageInfoByCmsRole(condition);
	}
    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/

}
